package com.bw.bwskinfilecreator.utils;

import java.io.File;

/**
 * 白天黑夜模式资源互换工具
 */
public class ExchangingResourcesUtils {
    String dirPath = "E:\\E5_skin";
    /**
     * 基准皮肤目录
     */
    String originPath = "D:\\BWProject\\LX1111\\SystemUI_Local_10\\systemui\\skin_temp\\systemui_skin\\src\\main\\res";
    /**
     * 开发目录
     */
    String devPath = "D:\\BWProject\\LX1111\\SystemUI_Local_10\\systemui\\CarSystemUI\\res";
    String daySkinPath = dirPath + "\\day\\res";
    String nightSkinPath = dirPath + "\\night\\res";

    public static void main(String[] args) {
        new ExchangingResourcesUtils().doSomething();
    }

    public void doSomething() {

        //外部新建目录
        FileUtils.deleteAllInDir(dirPath);
        FileUtils.createOrExistsDir(dirPath);
        File originDir = new File(originPath);
        //复制到缓存目录
        FileUtils.copy(originPath, daySkinPath);
        FileUtils.copy(originPath, nightSkinPath);
        //根据皮肤包中的资源匹配寻找
        //遍历开发目录
        File devFle = new File(devPath);
        check(devFle);
    }

    /**
     * 目标目录中寻找指定文件
     * @param file
     * @param targerFile
     */
    public void findFile(File file,File targerFile) {
        if (file.isFile()) {
            //文件,就比匹配
//            System.out.println("name = "+file.getName()+" parent = "+file.getParentFile().getName());
            if (file.getName().equals(targerFile.getName()) && file.getParentFile().getName().equals(targerFile.getParentFile().getName())){
                System.out.println(targerFile.getPath() +" -> "+file.getPath());
                //将目标文件复制到缓存位置
                FileUtils.copy(targerFile,file);
            }
        } else {
            for (File subFile :
                    file.listFiles()) {
                findFile(subFile,targerFile);
            }
        }
    }

    public void check(File file) {
        if (file.isFile()) {
            //文件,就比匹配
            findFile(new File(nightSkinPath),file);
        } else {
            for (File subFile :
                    file.listFiles()) {
                check(subFile);
            }
        }
    }
}
